package edu.ues21.tcs.ecommerce2011.mvc.dao;

import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.transaction.annotation.Transactional;
import edu.ues21.tcs.ecommerce2011.mvc.model.Estado;
/**
*
* @author eandre fmantaras
*/
@Transactional
public class EstadoDAOImpl implements EstadoDAO{

	// Declaro el hibernate template.
	private HibernateTemplate hibernateTemplate;

	// Le seteo el sessionFactory que le inyecto al hibernateTemplate.
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.hibernateTemplate = new HibernateTemplate(sessionFactory);
	}

	@Transactional
	public void save(Estado estado) {

		hibernateTemplate.merge(estado);
	}

	@Transactional
	public void delete(Integer idEstado) {
		Estado estado = (Estado) hibernateTemplate.get(Estado.class,
				idEstado);
		hibernateTemplate.delete(estado);
	}

	@SuppressWarnings("unchecked")
	@Transactional(readOnly = true)
	public List<Estado> getAll() {

		return hibernateTemplate.find("from Estado");
	}
	
	@Transactional(readOnly = true)
	public Estado getEstado(Integer idEstado) {

		return hibernateTemplate.get(Estado.class, idEstado);
	}




}
